<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 23. <数组&对象(递归)练习>检查数据中是否每一项的value都为true
        const input = [
            {
                value: true,
            },
            {
                value: true,
            },
            {
                value: true,
                children: [
                    {
                        value: true,
                    },
                    {
                        value: true,
                        children: [
                            {
                                value: false,
                            },
                            {
                                value: true,
                            },
                        ],
                    },
                ],
            },
        ];
        // function check(input) {
        //     for (const item of input) {
        //         if (!item.value) {
        //             return false;
        //         }
        //         if (item.children) {
        //             return check(item.children);
        //         }
        //     }
        //     return true;
        // }
        // console.log(check(input)); // false


        // ⭐
        function check(input) {
            for (const { value, children } of input) {
                if (!value) {
                    return false;
                }
                if (children && !check(children)) {
                    return false;
                }
            }
            return true;
        }
        console.log(check(input)); // false

        
        // 24. w<对象(递归)练习>检查数据中是否每一项的value都为true
        const input1 = {
            value: true,
            next: {
                value: true,
                next: {
                    value: true,
                    next: {
                        value: false,
                    },
                },
            },
        }
        // function check1(input) {
        //     for (const key in input) { 
        //         const type = input[key] instanceof Object;
        //         if (!type && input[key] !== true) {
        //             return false;
        //         }
        //         if (type) {
        //             return check1(input[key]);
        //         }
        //     }
        //     return true;
        // }

        // console.log(check1(input1)); // false

        // ⭐
        function check1(input) {
            if (!input.value) {
                return false;
            }
           if(!input.next) {
               return true;
           }
           if (!check1(input.next)) {
               return false;
           }
           return true;
        }

        console.log(check1(input1)); // false
    </script>
</body>
</html>